package com.itcast.dao;



import com.itcast.health.pojo.Menu;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author Gao
 * @version v1.0
 * @date 2019/12/3 11:18
 * @description   提供菜单的sql查询
 **/
public interface MenuMapper {
    //获取一级菜单
    List<Menu> findMenu1ByRoleId(@Param("roleId") Integer roleId);
    //获取二级菜单
    List<Menu> findChildrenMuneById(@Param("menuId") Integer menuId);
    /**
     * 查询所有菜单 并分级
     * @return
     */
    List<Menu> getMenu();

    /**
     * 根据id删除菜单
     * @param id
     */
    void deleteMenuById(@Param("id") Integer id);

    /**
     * 删除菜单时删除role-menu关系
     * @param id
     */
    void deleteRelationshipByMenuId(@Param("id") Integer id);

    /**
     * 根据menuid查询menu信息
     * @param id
     * @return
     */
    Menu getMenuById(@Param("id") Integer id);

    /**
     * 根据menuid查询所有可设为子菜单的menu信息
     * @param id
     * @return
     */
    List<Map> getChildMenuById(@Param("id") Integer id, @Param("parentMenuId") Integer parentMenuId);

    /**
     * 获取id对应子菜单的id集合
     * @param id
     * @return
     */
    Integer[] getChildIdsById(@Param("id") Integer id);

    /**
     * 获取id对应role-menu中role的id集合
     * @param id
     * @return
     */
    Integer[] getRoleIdsById(@Param("id") Integer id);

    /**
     * 获取所有角色
     * @return
     */
    List<Map> getRoles();

    /**
     * 查询所有的父菜单集合
     * @return
     */
    List<Map> getParentMenu();

    /**
     * 编辑菜单
     * @param menu
     */
    void edit(Menu menu);

    /**
     * 添加role-menu关系
     * @param items
     */
    void addRelationship(@Param("items") List items);


    void editChild(@Param("childId") Integer childId, @Param("id") Integer id);

}
